/*
 * @Author: yuanchenxi 836909158@qq.com
 * @Date: 2024-07-16 15:08:34
 * @LastEditors: 武兴创 superjava@vip.qq.com
 * @LastEditTime: 2024-08-28 17:48:26
 * @FilePath: \SGFEM\DataStructure\FEM\Constraint\include\RTRPLT1Data.h
 */
#pragma once
#include "DataStructure/Common/DataStructureExport.h"
#include "DataStructure/Common/Real.h"
#include "DataStructure/Input/Element/ElementBase.h"

SG_DATASTRUCTURE_FEM_NAMESPACE_OPEN

/** @brief 定义三个节点的刚性三角形壳单元的另一种格式。
 *
 *
 */
struct DECLSPEC RTRPLT1Data : public ElementBase
{
    SG::DataStructure::Common::Id m_g[3] = { 0 };      ///< 连接的网格点的节点编号

    SG::DataStructure::Common::Id   m_cMb      = 0;    ///< 全局坐标系下在GB的自由度方向，被约束着与刚体一起运动
    SG::DataStructure::Common::Id   m_cMc      = 0;    ///< 全局坐标系下在GC的自由度方向，被约束着与刚体一起运动
    SG::DataStructure::Common::Real m_alpha    = 0.0;  ///< 热膨胀系数
    SG::DataStructure::Common::Real m_tref     = 0.0;  ///< 用于热载荷计算的参考温度,默认=0.0
    SG::DataStructure::Common::Id   m_domainId = 0;
};

/// @brief 判断两个RTRPLT1Data是否相等
/// @param a
/// @param b
/// @return
DECLSPEC bool operator== (const RTRPLT1Data &a, const RTRPLT1Data &b);

SG_DATASTRUCTURE_FEM_NAMESPACE_CLOSE